package com.eastjet.equipment.util;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Date;

public class DateTimeUtil {
    // 定义输入日期格式
    private static final DateTimeFormatter INPUT_FORMATTER = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzzz yyyy").withZone(ZoneId.of("Asia/Shanghai"));

    // 定义输出日期格式
    private static final DateTimeFormatter OUTPUT_FORMATTER = DateTimeFormatter.ofPattern("yyyy年MM月dd日");

    /**
     * 将Date对象转换为特定格式的Date对象
     * @param inputDateTime 输入的Date对象
     * @return 转换后的Date对象
     */
    public static Date convertToDate(Date inputDateTime) {
        // 将Date转换为LocalDateTime
        LocalDateTime localDateTime = inputDateTime.toInstant().atZone(ZoneId.of("Asia/Shanghai")).toLocalDateTime();

        // 将LocalDateTime格式化为字符串
        String formattedDate = localDateTime.format(INPUT_FORMATTER);

        try {
            // 解析格式化后的字符串为LocalDateTime
            LocalDateTime parsedDateTime = LocalDateTime.parse(formattedDate, INPUT_FORMATTER);
            // 转换为目标的Date对象
            return Date.from(parsedDateTime.atZone(ZoneId.of("Asia/Shanghai")).toInstant());
        } catch (DateTimeParseException e) {
            // 处理解析错误
            System.err.println("日期时间格式不正确: " + formattedDate);
            return null;
        }
    }

}